/**
 * TextureData.h
 *
 * Author:
 *   Chris Herbison
 *
 * Description:
 *   Header file for the TextureData class.
 */

#ifndef TEXTUREDATA_H
#define TEXTUREDATA_H

#include "MyColor.h"
#include "vecmath.h"
#include <vector>

class TextureData{
     public:
          TextureData();
          TextureData(MyColor _ca, MyColor _cd, MyColor _cs);
          TextureData(vector<MyColor> _ca, vector<MyColor> _cd, vector<MyColor> _cs, bool _stretch, int _over, double _hOffset, double _hRatio);
          TextureData(vector<vector<MyColor> > _ca, vector<vector<MyColor> > _cd, vector<vector<MyColor> > _cs, bool _stretch, int _over, double _hOffset, double _vOffset, double _hRatio, double _vRatio);
          TextureData(vector<vector<vector<MyColor> > > _ca, vector<vector<vector<MyColor> > > _cd, vector<vector<vector<MyColor> > > _cs, bool _stretch, double _hOffset, double _vOffset, double _dOffset, double _hRatio, double _vRatio, double _dRatio);
          
          vector<MyColor> getColors(Point3 p);
          
          MyColor ca;
          MyColor cd;
          MyColor cs;
          vector<MyColor> ca1d;
          vector<MyColor> cd1d;
          vector<MyColor> cs1d;
          vector<vector<MyColor> > ca2d;
          vector<vector<MyColor> > cd2d;
          vector<vector<MyColor> > cs2d;
          vector<vector<vector<MyColor> > > ca3d;
          vector<vector<vector<MyColor> > > cd3d;
          vector<vector<vector<MyColor> > > cs3d;
          
          bool stretch;
          int over;
          double hOffset;
          double vOffset;
          double dOffset;
          double hRatio;
          double vRatio;
          double dRatio;
};

#endif
